/*
 * Copyright (c) 2001, 2002 Boris Pruessmann and others.
 * All rights reserved.   This program and the accompanying materials
 * are made available under the terms of the Common Public License v0.5
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v05.html
 * 
 * Contributors:
 *    Boris Pruessmann - Initial implementation.
 */
package net.sourceforge.perforce.core.api;

import java.util.Date;

import net.sourceforge.perforce.core.syncinfo.ResourceSyncInfo;

/**
  * This interface describes the result of a 'p4 describe' command.
  * 
  * @version $Revision: 16 $
  * @author  <a href="mailto:bpruessmann@users.sourceforge.net">Boris Pruessmann</a>
  */
public interface IDescribeResult
{
	// ------------------------------------------------------------------------------------- Methods
	
	/** Returns the id of the changelist.
	  * 
	  * @return the changelist's identifier.
	  */
	Integer getChangelist();
	
	/** Returns the owner of the changelist.
	  * 
	  * @return the user that is responsible for the changelist.
	  */
	String getUserName();
	
	/** Returns the client which submitted the changelist.
	  * 
	  * @return the name of the client.
	  */
	String getClientName();
	
	/** Returns the date of submission.
	  * 
	  * @return the submissin date.
	  */
	Date getDate();
	
	/** Returns the description.
	  * 
	  * @return the description of the changelist.
	  */
	String getDescription();
	
	/** Returns the status of the changelist.
	  * 
	  * @return the status.
	  */
	String getStatus();	
	
	/** Returns the affected files.<br>
	  * Only the following fields will be set on the returned ResourceSyncInfo
	  * objects:<br>
	  * <ul>
	  * 	<li>depotFileName</li>
	  * 	<li>action</li>
	  * 	<li>headType</li>
	  * 	<li>headRevision</li>
	  * </ul>
	  * 
	  * @return array of ResourceSyncInfo.
	  */
	ResourceSyncInfo[] getAffectedFiles();
}
